From f6b4946f94afe002af87a06a33c200d4dda23d12 Mon Sep 17 00:00:00 2001 From: "akw27@arcadians.cl.cam.ac.uk" Date: Thu, 26 May 2005 15:11:08 +0000 Subject: [PATCH] bitkeeper revision 1.1563 (4295e70c6gPBeUtVURfaYnxTU_GbrA) Make disconnect/destroy messages from xend to the backend drivers wait for responses to allow backends to shut down the connection properly. --- tools/python/xen/xend/server/blkif.py | 6 ++++-- tools/python/xen/xend/server/netif.py | 6 ++++-- tools/python/xen/xend/server/usbif.py | 5 +++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tools/python/xen/xend/server/blkif.py b/tools/python/xen/xend/server/blkif.py index 22253f25b6..5a179c23a0 100755 --- a/tools/python/xen/xend/server/blkif.py +++ b/tools/python/xen/xend/server/blkif.py @@ -103,14 +103,16 @@ class BlkifBackend: msg = packMsg('blkif_be_disconnect_t', { 'domid' : self.frontendDomain, 'blkif_handle' : self.id }) - self.backendChannel.writeRequest(msg) + self.backendChannel.requestResponse(msg) + #todo: check return status self.connected = False def send_be_destroy(self): msg = packMsg('blkif_be_destroy_t', { 'domid' : self.frontendDomain, 'blkif_handle' : self.id }) - self.backendChannel.writeRequest(msg) + self.backendChannel.requestResponse(msg) + #todo: check return status def connectInterface(self, val): self.openEvtchn() diff --git a/tools/python/xen/xend/server/netif.py b/tools/python/xen/xend/server/netif.py index 5e3d0d7446..9d2dbc4f63 100755 --- a/tools/python/xen/xend/server/netif.py +++ b/tools/python/xen/xend/server/netif.py @@ -313,13 +313,15 @@ class NetDev(Dev): msg = packMsg('netif_be_disconnect_t', { 'domid' : self.frontendDomain, 'netif_handle' : self.vif }) - return self.backendChannel.writeRequest(msg) + self.backendChannel.requestResponse(msg) + #todo: check return status def send_be_destroy(self, response=None): msg = packMsg('netif_be_destroy_t', { 'domid' : self.frontendDomain, 'netif_handle' : self.vif }) - return self.backendChannel.writeRequest(msg) + self.backendChannel.requestResponse(msg) + #todo: check return status def recv_fe_interface_connect(self, val): self.openEvtchn() diff --git a/tools/python/xen/xend/server/usbif.py b/tools/python/xen/xend/server/usbif.py index 0c1dd6f638..9535fdd202 100644 --- a/tools/python/xen/xend/server/usbif.py +++ b/tools/python/xen/xend/server/usbif.py @@ -89,13 +89,14 @@ class UsbBackend: log.debug('>UsbifBackendController>send_be_disconnect> %s', str(self)) msg = packMsg('usbif_be_disconnect_t', { 'domid' : self.frontendDomain }) - self.backendChannel.writeRequest(msg) + self.backendChannel.requestResponse(msg) def send_be_destroy(self, response=None): log.debug('>UsbifBackendController>send_be_destroy> %s', str(self)) msg = packMsg('usbif_be_destroy_t', { 'domid' : self.frontendDomain }) - self.backendChannel.writeRequest(msg, response=response) + self.backendChannel.requestResponse(msg) + #todo: check return status def connectInterface(self, val): -- 2.30.2